#pragma once
#include "igamestate.h"
#include "../Bitmap Font/BitmapFont.h"
#include "../SGD Wrappers/SGD_Math.h"
#include "../SGD Wrappers/CSGD_Direct3D.h"
#include "../SGD Wrappers/CSGD_TextureManager.h"
#include "../SGD Wrappers/CSGD_DirectInput.h"
#include "../SGD Wrappers/CSGD_XAudio2.h"
#include "../SGD Wrappers/tinyxml.h"
#include <fstream>
#include <iostream>
using namespace std;

class COptionsState : public IGameState
{

public:
	static COptionsState* GetInstance();
//IGameState Interface======================
	virtual void Enter(void);
	virtual void Update(float fElapsedTime);
	virtual void Exit(void);
	virtual void Render(void);
	virtual bool Input(void);
//==========================================

	bool LoadVolume( const char* szFilename);
	void SaveVolume (const char* szFilename);

private:
//trilogy of evil===========================
	COptionsState(void);
	COptionsState (const COptionsState&);
	virtual ~COptionsState(void);
	COptionsState& operator=(const COptionsState&);

	CSGD_Direct3D*			m_pD3D;
	CSGD_TextureManager*	m_pTM;
	CSGD_DirectInput*		m_pDI;
	CSGD_XAudio2*			m_pXA;

	CBitmapFont*			m_pFont;
	//IMAGES
	int						m_nBackGroundImgID;
	//SOUNDS
	int						m_nBackGroundSfxID;
	int						m_nBackGroundMusicID;
	int						m_nCursorMove;
	int						m_nScreenWidth;
	int						m_nScreenHeight;

protected:
	short					m_sMusicVol;
	short					m_sSfxVol;

};